// 类型别名

type PlusType = (a:number,b:number) => number
function sum(a:number,b:number):number {
    return  a + b
}

const sum2:PlusType  = sum

// 联合类型下使用类型别名
type NameResolver = () => string
type NameOrResover = string | NameResolver
function getName(n:NameOrResover):string {
    if(typeof n === "string") {
        return n
    } else {
        return  n()
    }
}

//类型断言
function getLength(input:number | string) :number{
    // const str = input as String
    // if(str.length) {
    //     return str.length
    // } else {
    //     const number = input as Number
    //     return number.toString().length
    // }
    if((<string>input).length){
        return (<string>input).length
    } else {
        input.toString().length
    }
}
